1. Statement of the Technical Field
The present invention relates to collaborative computing environments and, in particular, to the implementation and support of role delegation among users in a collaborative computing environment community.
2. Description of the Related Art
Collaborative computing provides a means for users to pool their strengths and experiences to achieve a common goal. For example, a common goal may be an educational objective, the completion of a software development project or even creation and use of a system to manage human resources. The establishment of a collaborative computing environment typically involves the creation or definition of a community. The community provides the framework under which the collaborative computing objective is achieved.
A collaborative computing community is defined by (1) a particular context, i.e. the objective of the community, (2) membership, i.e., the participants in the community, and (3) a set of roles for the community members. Roles are names given to the people in the community which dictate access to the community's resources and tools as well as define the behavior of the community members. Community creators or administrators may desire that roles have specific access and policy attributes for the different business components, i.e. tools, resources, etc. within the community.
For example, consider a community relating to a document management system where members of the community are collaborating to write a document. Roles within the community may include readers who have view-only access to documents within the community, authors who have reader permissions plus permission to create new documents and edit existing documents, and managers who have author privileges plus document deletion privileges as well as privilege to assign community roles, set task deadlines and approve submitted documents. A problem is encountered when users having certain roles, such as the manager-level role or the author role will be away from the community and need to delegate their role responsibilities to another user.
In current collaborative computing systems, users in roles having appropriate authority (delegators) can promote other users (delegatees) into the promoting user's role. This can be problematic because the promoting user may not want the promoted user to have the entire set of permissions and authorities available to the promoting user. Further, once the promotion has been made, the promoting user has to remember that he/she has promoted the other user in order to delegate responsibilities and must therefore remember to demote the promoted user at the appropriate point in the future.
In other collaborative computing systems, once a user has delegated his or her responsibilities, the user cannot get the responsibilities/role back without specific relinquishment from the user to whom the role was delegated. This is the case, for example, where the delegating user was the only user with administrator-level authority within a particular community.
These scenarios do not reflect real world responsibility delegation practices. In the real world, a person, such as a manager, delegates certain responsibilities to others during the period of the person's absence. For example, a manager who is taking a short vacation may wish to delegate decision making responsibilities for a particular project to one person, responsibilities for another project to another person, while not wanting to delegate personnel responsibilities to anyone. It is desirable to have a collaborative computing system which overcomes the above-described deficiencies and which provides a mechanism for temporary role delegation in which a subset of the privileges within the role can be delegated.